home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 May: Tool Chest / Developer CD Series May 1996 (Tool Chest) (Apple Computer) (1996).iso / Tool Chest / Development Tools & Languages / Dylan Related / Mindy / Mindy 1.2 - portable sources / comp / lexer.tab.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-03-15  |  64.9 KB  |  2,291 lines  |  [TEXT/ttxt]

  1. /* A lexical scanner generated by flex */
  2.  
  3. /* Scanner skeleton version:
  4.  * $Header: /home/daffy/u0/vern/flex/flex-2.4.7/RCS/flex.skl,v 1.2 94/08/03 11:13:24 vern Exp $
  5.  */
  6.  
  7. #define FLEX_SCANNER
  8.  
  9. #include <stdio.h>
  10.  
  11.  
  12. /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
  13. #ifdef c_plusplus
  14. #ifndef __cplusplus
  15. #define __cplusplus
  16. #endif
  17. #endif
  18.  
  19.  
  20. #ifdef __cplusplus
  21.  
  22. #include <stdlib.h>
  23. #include <unistd.h>
  24.  
  25. /* Use prototypes in function declarations. */
  26. #define YY_USE_PROTOS
  27.  
  28. /* The "const" storage-class-modifier is valid. */
  29. #define YY_USE_CONST
  30.  
  31. #else    /* ! __cplusplus */
  32.  
  33. #ifdef __STDC__
  34.  
  35. #define YY_USE_PROTOS
  36. #define YY_USE_CONST
  37.  
  38. #endif    /* __STDC__ */
  39. #endif    /* ! __cplusplus */
  40.  
  41.  
  42. #ifdef __TURBOC__
  43. #define YY_USE_CONST
  44. #endif
  45.  
  46.  
  47. #ifndef YY_USE_CONST
  48. #ifndef const
  49. #define const
  50. #endif
  51. #endif
  52.  
  53.  
  54. #ifdef YY_USE_PROTOS
  55. #define YY_PROTO(proto) proto
  56. #else
  57. #define YY_PROTO(proto) ()
  58. #endif
  59.  
  60. /* Returned upon end-of-file. */
  61. #define YY_NULL 0
  62.  
  63. /* Promotes a possibly negative, possibly signed char to an unsigned
  64.  * integer for use as an array index.  If the signed char is negative,
  65.  * we want to instead treat it as an 8-bit unsigned char, hence the
  66.  * double cast.
  67.  */
  68. #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
  69.  
  70. /* Enter a start condition.  This macro really ought to take a parameter,
  71.  * but we do it the disgusting crufty way forced on us by the ()-less
  72.  * definition of BEGIN.
  73.  */
  74. #define BEGIN yy_start = 1 + 2 *
  75.  
  76. /* Translate the current start state into a value that can be later handed
  77.  * to BEGIN to return to the state.
  78.  */
  79. #define YY_START ((yy_start - 1) / 2)
  80.  
  81. /* Action number for EOF rule of a given start state. */
  82. #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  83.  
  84. /* Special action meaning "start processing a new file".  Now included
  85.  * only for backward compatibility with previous versions of flex.
  86.  */
  87. #define YY_NEW_FILE yyrestart( yyin )
  88.  
  89. #define YY_END_OF_BUFFER_CHAR 0
  90.  
  91. /* Size of default input buffer. */
  92. #define YY_BUF_SIZE 16384
  93.  
  94. typedef struct yy_buffer_state *YY_BUFFER_STATE;
  95.  
  96. extern int yyleng;
  97. extern FILE *yyin, *yyout;
  98.  
  99. #ifdef __cplusplus
  100. extern "C" {
  101. #endif
  102.     extern int yywrap YY_PROTO(( void ));
  103. #ifdef __cplusplus
  104.     }
  105. #endif
  106.  
  107. #define EOB_ACT_CONTINUE_SCAN 0
  108. #define EOB_ACT_END_OF_FILE 1
  109. #define EOB_ACT_LAST_MATCH 2
  110.  
  111. /* The funky do-while in the following #define is used to turn the definition
  112.  * int a single C statement (which needs a semi-colon terminator).  This
  113.  * avoids problems with code like:
  114.  *
  115.  *     if ( condition_holds )
  116.  *        yyless( 5 );
  117.  *    else
  118.  *        do_something_else();
  119.  *
  120.  * Prior to using the do-while the compiler would get upset at the
  121.  * "else" because it interpreted the "if" statement as being all
  122.  * done when it reached the ';' after the yyless() call.
  123.  */
  124.  
  125. /* Return all but the first 'n' matched characters back to the input stream. */
  126.  
  127. #define yyless(n) \
  128.     do \
  129.         { \
  130.         /* Undo effects of setting up yytext. */ \
  131.         *yy_cp = yy_hold_char; \
  132.         yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
  133.         YY_DO_BEFORE_ACTION; /* set up yytext again */ \
  134.         } \
  135.     while ( 0 )
  136.  
  137. #define unput(c) yyunput( c, yytext_ptr )
  138.  
  139.  
  140. struct yy_buffer_state
  141.     {
  142.     FILE *yy_input_file;
  143.  
  144.     char *yy_ch_buf;        /* input buffer */
  145.     char *yy_buf_pos;        /* current position in input buffer */
  146.  
  147.     /* Size of input buffer in bytes, not including room for EOB
  148.      * characters.
  149.      */
  150.     int yy_buf_size;
  151.  
  152.     /* Number of characters read into yy_ch_buf, not including EOB
  153.      * characters.
  154.      */
  155.     int yy_n_chars;
  156.  
  157.     /* Whether this is an "interactive" input source; if so, and
  158.      * if we're using stdio for input, then we want to use getc()
  159.      * instead of fread(), to make sure we stop fetching input after
  160.      * each newline.
  161.      */
  162.     int yy_is_interactive;
  163.  
  164.     /* Whether to try to fill the input buffer when we reach the
  165.      * end of it.
  166.      */
  167.     int yy_fill_buffer;
  168.  
  169.     int yy_buffer_status;
  170. #define YY_BUFFER_NEW 0
  171. #define YY_BUFFER_NORMAL 1
  172.     /* When an EOF's been seen but there's still some text to process
  173.      * then we mark the buffer as YY_EOF_PENDING, to indicate that we
  174.      * shouldn't try reading from the input source any more.  We might
  175.      * still have a bunch of tokens to match, though, because of
  176.      * possible backing-up.
  177.      *
  178.      * When we actually see the EOF, we change the status to "new"
  179.      * (via yyrestart()), so that the user can continue scanning by
  180.      * just pointing yyin at a new input file.
  181.      */
  182. #define YY_BUFFER_EOF_PENDING 2
  183.     };
  184.  
  185. static YY_BUFFER_STATE yy_current_buffer = 0;
  186.  
  187. /* We provide macros for accessing buffer states in case in the
  188.  * future we want to put the buffer states in a more general
  189.  * "scanner state".
  190.  */
  191. #define YY_CURRENT_BUFFER yy_current_buffer
  192.  
  193.  
  194. /* yy_hold_char holds the character lost when yytext is formed. */
  195. static char yy_hold_char;
  196.  
  197. static int yy_n_chars;        /* number of characters read into yy_ch_buf */
  198.  
  199.  
  200. int yyleng;
  201.  
  202. /* Points to current character in buffer. */
  203. static char *yy_c_buf_p = (char *) 0;
  204. static int yy_init = 1;        /* whether we need to initialize */
  205. static int yy_start = 0;    /* start state number */
  206.  
  207. /* Flag which is used to allow yywrap()'s to do buffer switches
  208.  * instead of setting up a fresh yyin.  A bit of a hack ...
  209.  */
  210. static int yy_did_buffer_switch_on_eof;
  211.  
  212. static void yyunput YY_PROTO(( int c, char *buf_ptr ));
  213. void yyrestart YY_PROTO(( FILE *input_file ));
  214. void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
  215. void yy_load_buffer_state YY_PROTO(( void ));
  216. YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
  217. void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
  218. void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
  219.  
  220. static int yy_start_stack_ptr = 0;
  221. static int yy_start_stack_depth = 0;
  222. static int *yy_start_stack = 0;
  223. static void yy_push_state YY_PROTO(( int new_state ));
  224. static void yy_pop_state YY_PROTO(( void ));
  225. static int yy_top_state YY_PROTO(( void ));
  226.  
  227. static void *yy_flex_alloc YY_PROTO(( unsigned int ));
  228. static void *yy_flex_realloc YY_PROTO(( void *, unsigned int ));
  229. static void yy_flex_free YY_PROTO(( void * ));
  230.  
  231. #define yy_new_buffer yy_create_buffer
  232.  
  233. #define INITIAL 0
  234. #define ini 1
  235. #define key 2
  236. #define val 3
  237. #define etc 4
  238. typedef unsigned char YY_CHAR;
  239. typedef int yy_state_type;
  240. FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
  241. extern char *yytext;
  242. #define yytext_ptr yytext
  243.  
  244. #ifndef yytext_ptr
  245. static void yy_flex_strncpy YY_PROTO(( char *, const char *, int ));
  246. #endif
  247.  
  248. #ifdef __cplusplus
  249. static int yyinput YY_PROTO(( void ));
  250. #else
  251. static int input YY_PROTO(( void ));
  252. #endif
  253.  
  254. static yy_state_type yy_get_previous_state YY_PROTO(( void ));
  255. static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
  256. static int yy_get_next_buffer YY_PROTO(( void ));
  257. static void yy_fatal_error YY_PROTO(( const char msg[] ));
  258.  
  259. /* Done after the current pattern has been matched and before the
  260.  * corresponding action - sets up yytext.
  261.  */
  262. #define YY_DO_BEFORE_ACTION \
  263.     yytext_ptr = yy_bp; \
  264.     yyleng = yy_cp - yy_bp; \
  265.     yy_hold_char = *yy_cp; \
  266.     *yy_cp = '\0'; \
  267.     yy_c_buf_p = yy_cp;
  268.  
  269. #define YY_END_OF_BUFFER 108
  270. static const short int yy_accept[414] =
  271.     {   0,
  272.         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  273.       108,    1,  107,  106,  106,    4,  106,  106,  106,    5,
  274.         6,    7,  106,  106,  106,  101,  106,   68,   69,  101,
  275.        70,   78,   71,  101,   91,  106,   72,  101,   80,  101,
  276.        73,  106,   74,  102,  102,  102,  102,  102,  102,  102,
  277.       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
  278.       102,  102,  102,  102,   75,   76,   79,    0,    4,    0,
  279.         0,    3,    0,    5,    0,    6,    0,  102,    0,  100,
  280.         0,    0,   83,   84,    0,    0,   86,    0,    0,    0,
  281.         0,   85,    0,    0,    0,    0,   91,   95,    9,    8,
  282.  
  283.         0,   96,   91,    0,    0,   77,  101,  101,   81,   82,
  284.       103,    0,  103,  103,  103,    0,  102,  104,  102,  102,
  285.       102,  102,   15,  102,  102,  102,  102,  102,  102,  102,
  286.       102,  102,  102,  102,  102,  102,   32,  102,   33,  102,
  287.       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
  288.       102,  102,  102,   51,  102,  102,  102,  102,  102,    0,
  289.         2,    0,    0,    0,  105,    0,    0,   94,    0,    0,
  290.        93,    0,   92,   98,    0,    0,    0,    8,   95,    0,
  291.         0,  102,    0,   97,  102,  102,   62,  102,  102,  102,
  292.       102,  102,  102,  102,  102,  102,  102,   24,  102,  102,
  293.  
  294.       102,   27,  102,  102,  102,  102,  102,  102,  102,  102,
  295.        38,  102,  102,  102,  102,  102,  102,  102,  102,  102,
  296.       102,  102,  102,  102,  102,  102,  102,  102,   61,  102,
  297.       102,  102,    5,    0,   89,    0,    0,   99,    0,   97,
  298.         0,   95,    0,    0,   96,  102,  102,  102,  102,  102,
  299.       102,   16,  102,  102,  102,  102,  102,  102,   22,  102,
  300.       102,  102,  102,   28,   29,  102,  102,  102,  102,  102,
  301.       102,  102,  102,  102,  102,  102,   41,  102,  102,  102,
  302.       102,  102,   45,  102,   48,  102,   50,  102,  102,  102,
  303.       102,  102,    0,   87,   88,    0,   95,   11,  102,   12,
  304.  
  305.        13,   14,   17,  102,  102,  102,  102,  102,  102,  102,
  306.       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
  307.       102,   39,  102,  102,  102,  102,  102,  102,  102,  102,
  308.       102,  102,  102,   53,  102,  102,   56,    0,  102,  102,
  309.       102,  102,   60,   21,   23,  102,  102,   59,  102,  102,
  310.       102,  102,  102,  102,  102,  102,  102,   40,   57,  102,
  311.       102,  102,  102,  102,   46,   47,  102,   52,  102,  102,
  312.         0,  102,   18,  102,  102,  102,  102,   66,   26,   30,
  313.        31,   64,  102,  102,  102,   37,   58,  102,   63,   43,
  314.        67,  102,  102,  102,   55,    0,   10,   19,   20,  102,
  315.  
  316.        65,  102,   35,   36,  102,   44,   49,   54,   90,   25,
  317.        34,   42,    0
  318.     } ;
  319.  
  320. static const int yy_ec[256] =
  321.     {   0,
  322.         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
  323.         1,    4,    1,    1,    1,    1,    1,    1,    1,    1,
  324.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  325.         1,    5,    6,    7,    8,    9,    9,   10,   11,   12,
  326.        13,   14,   15,   16,   17,   18,   19,   20,   21,   22,
  327.        22,   22,   22,   22,   22,   23,   23,   24,   25,   26,
  328.        27,   28,   29,    9,   35,   36,   37,   38,   39,   40,
  329.        41,   42,   43,   44,   45,   46,   47,   48,   49,   50,
  330.        51,   52,   53,   54,   55,   56,   57,   58,   59,   44,
  331.        31,   32,   33,   34,    9,   30,   35,   36,   37,   38,
  332.  
  333.        39,   40,   41,   42,   43,   44,   45,   46,   47,   48,
  334.        49,   50,   51,   52,   53,   54,   55,   56,   57,   58,
  335.        59,   44,   60,   61,   62,   63,    1,    1,    1,    1,
  336.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  337.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  338.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  339.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  340.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  341.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  342.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  343.  
  344.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  345.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  346.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  347.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  348.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  349.         1,    1,    1,    1,    1
  350.     } ;
  351.  
  352. static const int yy_meta[64] =
  353.     {   0,
  354.         1,    1,    2,    1,    3,    4,    5,    3,    4,    4,
  355.         6,    3,    3,    4,    4,    3,    7,    3,    4,    8,
  356.         9,    9,    9,    7,    3,    4,    4,    4,    4,    3,
  357.         3,   10,    3,    4,    8,    8,    9,    9,    8,    8,
  358.         7,    7,    7,    7,    7,    7,    7,   11,    7,    7,
  359.         7,   11,    7,   11,    7,    7,    7,    7,    7,    3,
  360.         4,    3,    4
  361.     } ;
  362.  
  363. static const short int yy_base[431] =
  364.     {   0,
  365.      1119, 1118, 1117,    0, 1116, 1110, 1114, 1113,   59,    0,
  366.      1115, 1123, 1123, 1123,    4, 1123, 1108, 1089, 1109,    8,
  367.        10, 1123,  117,  117,  174,    0, 1079, 1123, 1123,    0,
  368.      1123,    6,   10,  111,  227,  123, 1123, 1083,  101, 1082,
  369.      1123,  281, 1123,  153,  158,  166,  109,  265,  159,  155,
  370.       160,  211, 1084,  161,  164,  167,  268,  168,  200,  273,
  371.       275,  277,  286,  201, 1123, 1123, 1080,   14, 1123, 1103,
  372.      1081, 1123, 1101,  191,  225,  329,    0, 1079,  295, 1123,
  373.         0,  307, 1123, 1123, 1056,  121, 1123, 1062, 1061,  315,
  374.      1060, 1123,    0, 1087,    0,  325,  331,  335, 1123,    0,
  375.  
  376.       341,  375,    0,  428,  385, 1123, 1123,    0,    0,    0,
  377.      1123, 1070, 1069, 1068, 1067, 1066, 1068, 1123,  319,  214,
  378.       336,  292, 1067,  279,  351,  302,  342,  280,  314,  347,
  379.       341,  363,  205,  377,  379,  388, 1066,  359,  368,  228,
  380.       398,  270,  197,  399,  380,  391,  393,  401,  464,  468,
  381.       469,  395,  400, 1065,  470,  422,  408,  471,  466, 1085,
  382.      1123, 1084,  494,  493, 1123,    0, 1040,  438, 1026, 1026,
  383.       484, 1030,    0, 1123, 1071,  511,  520,    0,  524,  533,
  384.       577, 1057,  499,  537,  474,  484, 1056,  486,  478,  512,
  385.       527,  515,  163,  528,  537,  545,  540, 1055,  556,  552,
  386.  
  387.       543, 1054,  546,  560,  550,  584,  566,  585,  569,  586,
  388.      1053,  589,  592,  588,  590,  594,  593,  477,  597,  596,
  389.       595,  602,  610,  604,  609,  605,  612,  611, 1052,  613,
  390.       615,  628,  655, 1058, 1123, 1020, 1019, 1123,  641,  645,
  391.       650,  655,  664,  668,  672, 1048,  658,  631,  656,  672,
  392.       396, 1047,  674,  675,  676,  677,  678,  682,  679,  683,
  393.       681,  685,  688, 1046, 1045,  686,  689,  687,  690,  684,
  394.       702,  692,  719,  700,  696,  701, 1044,  697,  720,  724,
  395.       726,  727,  728,  729, 1043,  731, 1041,  732,  733,  734,
  396.       736,  737, 1016, 1123, 1123,  760,  766, 1036,  740, 1032,
  397.  
  398.      1030, 1029, 1018,  738,  760,  766,  768,  770,  771,  744,
  399.       772,  748,  754,  773,  779,  750,  781,  782,  791,  788,
  400.       789, 1014,  790,  793,  795,  796,  797,  798,  799,  801,
  401.       802,  803,  805, 1012,  623,  807,  997,  980,  809,  810,
  402.       811,  819,  994,  983,  969,  812,  820,  965,  821,  824,
  403.       823,  964,  829,  826,  833,  838,  840,  957,  932,  842,
  404.       893,  844,  890,  847,  888,  887,  848,  885,  846,  849,
  405.       849,  850,  876,  854,  853,  857,  747, 1123,  741,  694,
  406.       693, 1123,  855,  858,  860,  691,  551,  863, 1123,  549,
  407.      1123,  864,  865,  866,  547,  460,  487,  483,  405,  867,
  408.  
  409.      1123,  872,  352,  316,  874,  269,  216,  207, 1123,  111,
  410.        10,    1, 1123,  919,  930,  941,  946,  957,  966,  975,
  411.       983,  994, 1005, 1012, 1021, 1025, 1029, 1040, 1047, 1055
  412.     } ;
  413.  
  414. static const short int yy_def[431] =
  415.     {   0,
  416.       414,  414,  415,  415,  415,    4,  416,  416,  413,    9,
  417.       413,  413,  413,  413,  413,  413,  413,  417,  418,  413,
  418.       413,  413,  413,  419,  413,   23,  420,  413,  413,  413,
  419.       413,  413,  413,  413,  413,  413,  413,   23,   23,   23,
  420.       413,  413,  413,  421,  421,  421,  421,  421,  421,  421,
  421.       421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  422.       421,  421,  421,  421,  413,  413,  413,  413,  413,  422,
  423.       417,  413,  418,  413,  423,  413,   23,  421,  419,  413,
  424.       424,  425,  413,  413,  413,  413,  413,  413,  413,  413,
  425.       413,  413,  426,  413,  427,  413,  413,  413,  413,  428,
  426.  
  427.        35,  413,   35,  413,  104,  413,  413,   23,   23,   23,
  428.       413,  413,  413,  413,  413,  413,  421,  413,  421,  421,
  429.       421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  430.       421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  431.       421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  432.       421,  421,  421,  421,  421,  421,  421,  421,  421,  422,
  433.       413,  423,  423,  425,  413,  429,  413,  413,  413,  413,
  434.       413,  413,  426,  413,  413,  413,  413,  428,  413,  413,
  435.       101,  430,  181,  181,  421,  421,  421,  421,  421,  421,
  436.       421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  437.  
  438.       421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  439.       421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  440.       421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  441.       421,  421,  413,  413,  413,  413,  413,  413,  413,  413,
  442.       413,  413,  413,  413,  413,  430,  421,  421,  421,  421,
  443.       421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  444.       421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  445.       421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  446.       421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  447.       421,  421,  413,  413,  413,  413,  413,  421,  421,  421,
  448.  
  449.       421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  450.       421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  451.       421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  452.       421,  421,  421,  421,  421,  421,  421,  413,  421,  421,
  453.       421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  454.       421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  455.       421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
  456.       413,  421,  421,  421,  421,  421,  421,  413,  421,  421,
  457.       421,  413,  421,  421,  421,  421,  421,  421,  413,  421,
  458.       413,  421,  421,  421,  421,  413,  421,  421,  421,  421,
  459.  
  460.       413,  421,  421,  421,  421,  421,  421,  421,  413,  421,
  461.       421,  421,    0,  413,  413,  413,  413,  413,  413,  413,
  462.       413,  413,  413,  413,  413,  413,  413,  413,  413,  413
  463.     } ;
  464.  
  465. static const short int yy_nxt[1187] =
  466.     {   0,
  467.       413,   15,   16,  413,   15,   68,   69,   17,   68,   75,
  468.       413,   76,   75,   76,   76,   68,   69,   96,   68,   97,
  469.        97,   97,   97,   96,  118,   97,   97,   97,   97,   98,
  470.        98,   98,   98,  118,   18,   18,   18,   18,   18,   18,
  471.        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
  472.        18,   18,   18,   18,   18,   18,   18,   18,   18,   14,
  473.        21,   22,   21,   21,   23,   24,   25,   23,   26,   27,
  474.        28,   29,   26,   30,   31,   32,   33,   34,   35,   35,
  475.        35,   35,   36,   37,   38,   39,   40,   14,   14,   41,
  476.        42,   43,   26,   44,   45,   46,   47,   48,   49,   50,
  477.  
  478.        51,   52,   53,   54,   55,   56,   53,   57,   58,   53,
  479.        59,   60,   61,   62,   63,   64,   53,   53,   65,   26,
  480.        66,   67,   77,   80,   99,   77,   77,  109,  110,  100,
  481.        77,   77,  118,   77,  118,   77,   77,   77,   77,   77,
  482.       168,  168,   77,   77,   77,   77,  106,  128,   81,  107,
  483.        77,   78,   78,   78,   78,   78,   78,   78,   78,   78,
  484.        78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
  485.        78,   78,   78,   78,   78,   78,  118,   77,  118,   77,
  486.        82,  118,  118,  118,  118,   83,  118,  118,  119,  118,
  487.       118,  118,   75,  135,  136,   75,  121,  254,  120,  140,
  488.  
  489.       124,  132,  141,  122,   84,  144,  142,  133,   85,   86,
  490.       134,  125,  143,   87,  126,  145,  123,  127,   88,  148,
  491.       118,   89,   90,  118,  118,   91,  163,   92,  118,  163,
  492.       118,   93,  101,  213,  118,  101,  101,  118,  149,  118,
  493.       101,  101,  159,  101,  102,  101,  103,  103,  103,  103,
  494.       137,  118,  101,  101,  101,  101,  202,  138,  139,  187,
  495.       101,  104,  104,  104,  105,  105,  104,  104,  104,  104,
  496.       104,  104,  104,  104,  104,  104,  104,  104,  104,  105,
  497.       104,  104,  104,  104,  105,  104,  210,  101,  118,  101,
  498.       111,  118,  118,  118,  111,  111,  118,  111,  118,  111,
  499.  
  500.       118,   80,  118,  118,  112,  212,  113,  114,  115,  118,
  501.       129,  150,  130,  165,  111,  118,  153,  146,  151,  196,
  502.       157,  147,  131,  154,  155,  118,   81,  152,  158,  156,
  503.        76,  191,   76,   76,  171,  171,  171,  118,  166,  118,
  504.       190,  111,  118,  116,   98,   98,   98,   98,  102,  194,
  505.        97,   97,   97,   97,   98,   98,   98,   98,  413,  118,
  506.       101,  101,  101,  101,  118,  118,  197,  185,  176,  176,
  507.       118,  186,  177,  177,  118,  118,  188,  199,  104,  104,
  508.       195,  189,  118,  176,  198,  192,  118,  177,  176,  193,
  509.       200,  118,  177,  104,  179,  179,  179,  179,  104,  183,
  510.  
  511.       118,  183,  118,  118,  184,  184,  184,  184,  207,  208,
  512.       201,  118,  180,  180,  118,  203,  118,  215,  118,  118,
  513.       209,  118,  118,  118,  118,  204,  205,  180,  118,  216,
  514.       225,  118,  180,  181,  217,  206,  181,  181,  226,  218,
  515.       302,  181,  181,  219,  181,  118,  181,  181,  181,  181,
  516.       181,  211,  214,  181,  181,  181,  181,  168,  168,  230,
  517.       229,  181,  182,  182,  182,  182,  182,  182,  182,  182,
  518.       182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
  519.       182,  182,  182,  182,  182,  182,  182,  118,  181,  118,
  520.       181,  118,  118,  118,  118,  163,  233,  118,  163,  165,
  521.  
  522.       118,  118,  222,  171,  171,  171,  118,  118,  232,  118,
  523.       118,  220,  409,  223,  221,  227,  279,  224,  184,  184,
  524.       184,  184,  231,  228,  166,  239,  250,  239,  249,  247,
  525.       240,  240,  240,  240,  241,  118,  241,  248,  118,  242,
  526.       242,  242,  242,  179,  179,  179,  179,  244,  251,  244,
  527.       118,  118,  245,  245,  245,  245,  184,  184,  184,  184,
  528.       118,  243,  243,  118,  255,  252,  118,  253,  118,  118,
  529.       118,  257,  118,  118,  118,  118,  243,  263,  259,  118,
  530.       256,  243,  181,  118,  264,  181,  181,  258,  266,  118,
  531.       181,  181,  118,  181,  260,  181,  181,  181,  181,  181,
  532.  
  533.       262,  261,  181,  181,  181,  181,  265,  118,  118,  118,
  534.       181,  118,  118,  118,  268,  118,  118,  118,  118,  118,
  535.       118,  267,  270,  269,  271,  118,  274,  118,  118,  275,
  536.       281,  278,  118,  118,  118,  118,  118,  181,  118,  181,
  537.       273,  277,  272,  280,  276,  286,  118,  283,  284,  282,
  538.       288,  118,  287,  289,  118,  290,   75,  285,  369,   75,
  539.       240,  240,  240,  240,  240,  240,  240,  240,  291,  242,
  540.       242,  242,  242,  292,  242,  242,  242,  242,  296,  118,
  541.       296,  118,  299,  297,  297,  297,  297,  245,  245,  245,
  542.       245,  245,  245,  245,  245,  118,  298,  118,  118,  118,
  543.  
  544.       118,  118,  118,  300,  118,  118,  118,  118,  118,  118,
  545.       118,  118,  118,  118,  118,  118,  118,  118,  318,  118,
  546.       118,  309,  304,  118,  118,  118,  303,  305,  301,  308,
  547.       306,  307,  310,  313,  315,  311,  312,  314,  316,  319,
  548.       320,  317,  118,  118,  323,  322,  324,  118,  325,  118,
  549.       118,  118,  118,  321,  118,  118,  118,  118,  327,  118,
  550.       118,  118,  326,  118,  118,  331,  330,  118,  335,  329,
  551.       401,  118,  328,  118,  339,  337,  332,  118,  334,  297,
  552.       297,  297,  297,  118,  333,  297,  297,  297,  297,  118,
  553.       336,  118,  340,  118,  118,  118,  118,  346,  341,  349,
  554.  
  555.       342,  348,  118,  352,  118,  118,  343,  355,  344,  347,
  556.       345,  118,  118,  118,  118,  350,  118,  351,  118,  118,
  557.       118,  118,  118,  353,  118,  118,  118,  358,  118,  354,
  558.       118,  359,  118,  118,  118,  118,  363,  367,  365,  356,
  559.       357,  370,  118,  118,  118,  372,  118,  118,  362,  118,
  560.       364,  360,  118,  361,  376,  366,  118,  368,  377,  373,
  561.       380,  118,  384,  118,  374,  118,  375,  118,  385,  118,
  562.       118,  118,  118,  118,  381,  386,  118,  118,  118,  379,
  563.       118,  118,  383,  118,  388,  392,  118,  118,  118,  118,
  564.       118,  394,  398,  402,  395,  118,  403,  118,  387,  118,
  565.  
  566.       393,  406,  390,  397,  408,  400,  399,  396,  118,  411,
  567.       118,  118,  412,  391,  410,  405,  389,  407,  404,   12,
  568.        12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
  569.        14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
  570.        14,   19,   19,   19,   19,   19,   19,   19,   19,   19,
  571.        19,   19,   71,   71,   71,  118,   71,   73,   73,   73,
  572.        73,   73,   73,   73,   73,   73,   73,   73,   79,   79,
  573.        79,   79,   79,   79,   79,   79,   79,   94,   94,   94,
  574.       118,   94,   94,   94,   94,   94,  117,  382,  378,  117,
  575.       117,  117,  118,  117,  160,  160,  160,  160,  160,  160,
  576.  
  577.       160,  160,  160,  160,  160,  162,  118,  162,  162,  162,
  578.       162,  162,  162,  162,  162,  162,   79,  118,  371,   79,
  579.       118,   79,   79,  164,  164,  164,  164,  164,  164,  164,
  580.       164,  164,  173,  173,  175,  118,  175,  118,  175,  175,
  581.       178,  118,  178,  178,  178,  178,  178,  178,  178,  178,
  582.       178,  164,  118,  118,  164,  118,  164,  164,  246,  118,
  583.       338,  246,  246,  246,  118,  246,  118,  118,  118,  118,
  584.       118,  118,  295,  294,  293,  118,  118,  118,  118,  118,
  585.       118,  238,  237,  236,  235,  234,  233,  161,  118,  118,
  586.       118,  118,  111,  111,  111,  111,  111,  174,  172,  170,
  587.  
  588.       169,  167,  118,   74,   72,  161,  107,  118,  108,  108,
  589.        95,   74,   72,   70,  413,   20,   20,   14,   13,   13,
  590.        13,   13,   11,  413,  413,  413,  413,  413,  413,  413,
  591.       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
  592.       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
  593.       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
  594.       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
  595.       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
  596.       413,  413,  413,  413,  413,  413
  597.     } ;
  598.  
  599. static const short int yy_chk[1187] =
  600.     {   0,
  601.         0,    4,    4,    0,    4,   15,   15,    4,   15,   20,
  602.         0,   21,   20,   21,   21,   68,   68,   30,   68,   30,
  603.        30,   30,   30,   32,  412,   32,   32,   32,   32,   33,
  604.        33,   33,   33,  411,    4,    4,    4,    4,    4,    4,
  605.         4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
  606.         4,    4,    4,    4,    4,    4,    4,    4,    4,    9,
  607.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  608.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  609.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  610.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  611.  
  612.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  613.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  614.         9,    9,   23,   24,   34,   23,   23,   39,   39,   34,
  615.        23,   23,   47,   23,  410,   23,   23,   23,   23,   23,
  616.        86,   86,   23,   23,   23,   23,   36,   47,   24,   36,
  617.        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
  618.        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
  619.        23,   23,   23,   23,   23,   23,   44,   23,   50,   23,
  620.        25,   45,   49,   51,   54,   25,  193,   55,   44,   46,
  621.        56,   58,   74,   50,   51,   74,   45,  193,   44,   54,
  622.  
  623.        46,   49,   55,   45,   25,   56,   55,   49,   25,   25,
  624.        49,   46,   55,   25,   46,   56,   45,   46,   25,   58,
  625.       143,   25,   25,   59,   64,   25,   75,   25,  133,   75,
  626.       408,   25,   35,  143,   52,   35,   35,  120,   59,  407,
  627.        35,   35,   64,   35,   35,   35,   35,   35,   35,   35,
  628.        52,  140,   35,   35,   35,   35,  133,   52,   52,  120,
  629.        35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
  630.        35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
  631.        35,   35,   35,   35,   35,   35,  140,   35,   48,   35,
  632.        42,   57,  406,  142,   42,   42,   60,   42,   61,   42,
  633.  
  634.        62,   79,  124,  128,   42,  142,   42,   42,   42,   63,
  635.        48,   60,   48,   82,   42,  122,   61,   57,   60,  128,
  636.        63,   57,   48,   61,   62,  126,   79,   60,   63,   62,
  637.        76,  124,   76,   76,   90,   90,   90,  129,   82,  404,
  638.       122,   42,  119,   42,   96,   96,   96,   96,   97,  126,
  639.        97,   97,   97,   97,   98,   98,   98,   98,  101,  121,
  640.       101,  101,  101,  101,  131,  127,  129,  119,   97,   97,
  641.       130,  119,   98,   98,  125,  403,  121,  131,  101,  101,
  642.       127,  121,  138,   97,  130,  125,  132,   98,   97,  125,
  643.       131,  139,   98,  101,  102,  102,  102,  102,  101,  105,
  644.  
  645.       134,  105,  135,  145,  105,  105,  105,  105,  138,  139,
  646.       132,  136,  102,  102,  146,  134,  147,  145,  152,  251,
  647.       139,  141,  144,  153,  148,  134,  135,  102,  399,  146,
  648.       152,  157,  102,  104,  147,  136,  104,  104,  153,  148,
  649.       251,  104,  104,  148,  104,  156,  104,  104,  104,  104,
  650.       104,  141,  144,  104,  104,  104,  104,  168,  168,  157,
  651.       156,  104,  104,  104,  104,  104,  104,  104,  104,  104,
  652.       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
  653.       104,  104,  104,  104,  104,  104,  104,  149,  104,  159,
  654.       104,  150,  151,  155,  158,  163,  163,  185,  163,  164,
  655.  
  656.       218,  189,  150,  171,  171,  171,  398,  186,  159,  188,
  657.       397,  149,  396,  150,  149,  155,  218,  151,  183,  183,
  658.       183,  183,  158,  155,  164,  176,  189,  176,  188,  185,
  659.       176,  176,  176,  176,  177,  190,  177,  186,  192,  177,
  660.       177,  177,  177,  179,  179,  179,  179,  180,  190,  180,
  661.       191,  194,  180,  180,  180,  180,  184,  184,  184,  184,
  662.       195,  179,  179,  197,  194,  191,  201,  192,  196,  203,
  663.       395,  195,  390,  205,  387,  200,  179,  201,  197,  199,
  664.       194,  179,  181,  204,  203,  181,  181,  196,  205,  207,
  665.       181,  181,  209,  181,  199,  181,  181,  181,  181,  181,
  666.  
  667.       200,  199,  181,  181,  181,  181,  204,  206,  208,  210,
  668.       181,  214,  212,  215,  207,  213,  217,  216,  221,  220,
  669.       219,  206,  209,  208,  210,  222,  213,  224,  226,  214,
  670.       220,  217,  225,  223,  228,  227,  230,  181,  231,  181,
  671.       212,  216,  210,  219,  215,  225,  335,  222,  223,  221,
  672.       227,  232,  226,  228,  248,  230,  233,  224,  335,  233,
  673.       239,  239,  239,  239,  240,  240,  240,  240,  231,  241,
  674.       241,  241,  241,  232,  242,  242,  242,  242,  243,  249,
  675.       243,  247,  248,  243,  243,  243,  243,  244,  244,  244,
  676.       244,  245,  245,  245,  245,  250,  247,  253,  254,  255,
  677.  
  678.       256,  257,  259,  249,  261,  258,  260,  270,  262,  266,
  679.       268,  263,  267,  269,  386,  272,  381,  380,  270,  275,
  680.       278,  259,  254,  274,  276,  271,  253,  255,  250,  258,
  681.       256,  257,  260,  263,  267,  261,  262,  266,  268,  271,
  682.       272,  269,  273,  279,  275,  274,  276,  280,  278,  281,
  683.       282,  283,  284,  273,  286,  288,  289,  290,  280,  291,
  684.       292,  304,  279,  299,  379,  284,  283,  310,  290,  282,
  685.       377,  312,  281,  316,  299,  292,  286,  313,  289,  296,
  686.       296,  296,  296,  305,  288,  297,  297,  297,  297,  306,
  687.       291,  307,  304,  308,  309,  311,  314,  310,  305,  313,
  688.  
  689.       306,  312,  315,  316,  317,  318,  307,  319,  308,  311,
  690.       309,  320,  321,  323,  319,  314,  324,  315,  325,  326,
  691.       327,  328,  329,  317,  330,  331,  332,  323,  333,  318,
  692.       336,  324,  339,  340,  341,  346,  328,  332,  330,  320,
  693.       321,  336,  342,  347,  349,  339,  351,  350,  327,  354,
  694.       329,  325,  353,  326,  346,  331,  355,  333,  347,  340,
  695.       350,  356,  354,  357,  341,  360,  342,  362,  355,  369,
  696.       364,  367,  370,  372,  351,  356,  375,  374,  383,  349,
  697.       376,  384,  353,  385,  360,  364,  388,  392,  393,  394,
  698.       400,  369,  374,  383,  370,  402,  384,  405,  357,  373,
  699.  
  700.       367,  392,  362,  372,  394,  376,  375,  371,  368,  402,
  701.       366,  365,  405,  363,  400,  388,  361,  393,  385,  414,
  702.       414,  414,  414,  414,  414,  414,  414,  414,  414,  414,
  703.       415,  415,  415,  415,  415,  415,  415,  415,  415,  415,
  704.       415,  416,  416,  416,  416,  416,  416,  416,  416,  416,
  705.       416,  416,  417,  417,  417,  359,  417,  418,  418,  418,
  706.       418,  418,  418,  418,  418,  418,  418,  418,  419,  419,
  707.       419,  419,  419,  419,  419,  419,  419,  420,  420,  420,
  708.       358,  420,  420,  420,  420,  420,  421,  352,  348,  421,
  709.       421,  421,  345,  421,  422,  422,  422,  422,  422,  422,
  710.  
  711.       422,  422,  422,  422,  422,  423,  344,  423,  423,  423,
  712.       423,  423,  423,  423,  423,  423,  424,  343,  338,  424,
  713.       337,  424,  424,  425,  425,  425,  425,  425,  425,  425,
  714.       425,  425,  426,  426,  427,  334,  427,  322,  427,  427,
  715.       428,  303,  428,  428,  428,  428,  428,  428,  428,  428,
  716.       428,  429,  302,  301,  429,  300,  429,  429,  430,  298,
  717.       293,  430,  430,  430,  287,  430,  285,  277,  265,  264,
  718.       252,  246,  237,  236,  234,  229,  211,  202,  198,  187,
  719.       182,  175,  172,  170,  169,  167,  162,  160,  154,  137,
  720.       123,  117,  116,  115,  114,  113,  112,   94,   91,   89,
  721.  
  722.        88,   85,   78,   73,   71,   70,   67,   53,   40,   38,
  723.        27,   19,   18,   17,   11,    8,    7,    6,    5,    3,
  724.         2,    1,  413,  413,  413,  413,  413,  413,  413,  413,
  725.       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
  726.       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
  727.       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
  728.       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
  729.       413,  413,  413,  413,  413,  413,  413,  413,  413,  413,
  730.       413,  413,  413,  413,  413,  413
  731.     } ;
  732.  
  733. static yy_state_type yy_last_accepting_state;
  734. static char *yy_last_accepting_cpos;
  735.  
  736. /* The intent behind this definition is that it'll catch
  737.  * any uses of REJECT which flex missed.
  738.  */
  739. #define REJECT reject_used_but_not_detected
  740. #define yymore() yymore_used_but_not_detected
  741. #define YY_MORE_ADJ 0
  742. char *yytext;
  743. # line 1 "../../mindy-1.x/comp/lexer.l"
  744. # line 2 "../../mindy-1.x/comp/lexer.l"
  745. /**********************************************************************\
  746. *
  747. *  Copyright (c) 1994  Carnegie Mellon University
  748. *  All rights reserved.
  749. *  
  750. *  Use and copying of this software and preparation of derivative
  751. *  works based on this software are permitted, including commercial
  752. *  use, provided that the following conditions are observed:
  753. *  
  754. *  1. This copyright notice must be retained in full on any copies
  755. *     and on appropriate parts of any derivative works.
  756. *  2. Documentation (paper or online) accompanying any system that
  757. *     incorporates this software, or any part of it, must acknowledge
  758. *     the contribution of the Gwydion Project at Carnegie Mellon
  759. *     University.
  760. *  
  761. *  This software is made available "as is".  Neither the authors nor
  762. *  Carnegie Mellon University make any warranty about the software,
  763. *  its performance, or its conformity to any specification.
  764. *  
  765. *  Bug reports, questions, comments, and suggestions should be sent by
  766. *  E-mail to the Internet address "gwydion-bugs@cs.cmu.edu".
  767. *
  768. ***********************************************************************
  769. *
  770. * $Header: lexer.l,v 1.12 94/10/05 20:55:19 nkramer Exp $
  771. *
  772. * This file is the lexical analizer.
  773. *
  774. \**********************************************************************/
  775.  
  776. #include <stdio.h>
  777. #include "lexer.h"
  778. #include "src.h"
  779. #include "parser.tab.h"
  780.  
  781. extern int isatty();
  782. extern void warn();
  783.  
  784. int line_count = 1;
  785.  
  786. #define is(type) return (yylval.token = make_token(yytext, yyleng)), type;
  787.  
  788. static void skip_multi_line_comment(void);
  789. static int make_header_key(void);
  790. static int make_header_val(void);
  791. static int make_header_end(void);
  792.   
  793.  
  794. /* Macros after this point can all be overridden by user definitions in
  795.  * section 1.
  796.  */
  797.  
  798. #ifdef YY_MALLOC_DECL
  799. YY_MALLOC_DECL
  800. #else
  801. #if __STDC__
  802. #ifndef __cplusplus
  803. #include <stdlib.h>
  804. #endif
  805. #else
  806. /* Just try to get by without declaring the routines.  This will fail
  807.  * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
  808.  * or sizeof(void*) != sizeof(int).
  809.  */
  810. #endif
  811. #endif
  812.  
  813. /* Amount of stuff to slurp up with each read. */
  814. #ifndef YY_READ_BUF_SIZE
  815. #define YY_READ_BUF_SIZE 8192
  816. #endif
  817.  
  818. /* Copy whatever the last rule matched to the standard output. */
  819.  
  820. #ifndef ECHO
  821. /* This used to be an fputs(), but since the string might contain NUL's,
  822.  * we now use fwrite().
  823.  */
  824. #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
  825. #endif
  826.  
  827. /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
  828.  * is returned in "result".
  829.  */
  830. #ifndef YY_INPUT
  831. #define YY_INPUT(buf,result,max_size) \
  832.     if ( yy_current_buffer->yy_is_interactive ) \
  833.         { \
  834.         int c = getc( yyin ); \
  835.         result = c == EOF ? 0 : 1; \
  836.         buf[0] = (char) c; \
  837.         } \
  838.     else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
  839.           && ferror( yyin ) ) \
  840.         YY_FATAL_ERROR( "input in flex scanner failed" );
  841. #endif
  842.  
  843. /* No semi-colon after return; correct usage is to write "yyterminate();" -
  844.  * we don't want an extra ';' after the "return" because that will cause
  845.  * some compilers to complain about unreachable statements.
  846.  */
  847. #ifndef yyterminate
  848. #define yyterminate() return YY_NULL
  849. #endif
  850.  
  851. /* Number of entries by which start-condition stack grows. */
  852. #ifndef YY_START_STACK_INCR
  853. #define YY_START_STACK_INCR 25
  854. #endif
  855.  
  856. /* Report a fatal error. */
  857. #ifndef YY_FATAL_ERROR
  858. #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  859. #endif
  860.  
  861. /* Default declaration of generated scanner - a define so the user can
  862.  * easily add parameters.
  863.  */
  864. #ifndef YY_DECL
  865. #define YY_DECL int yylex YY_PROTO(( void ))
  866. #endif
  867.  
  868. /* Code executed at the beginning of each rule, after yytext and yyleng
  869.  * have been set up.
  870.  */
  871. #ifndef YY_USER_ACTION
  872. #define YY_USER_ACTION
  873. #endif
  874.  
  875. /* Code executed at the end of each rule. */
  876. #ifndef YY_BREAK
  877. #define YY_BREAK break;
  878. #endif
  879.  
  880. YY_DECL
  881.     {
  882.     register yy_state_type yy_current_state;
  883.     register char *yy_cp, *yy_bp;
  884.     register int yy_act;
  885.  
  886. # line 70 "../../mindy-1.x/comp/lexer.l"
  887.  
  888.  
  889.  
  890.     if ( yy_init )
  891.         {
  892. #ifdef YY_USER_INIT
  893.         YY_USER_INIT;
  894. #endif
  895.  
  896.         if ( ! yy_start )
  897.             yy_start = 1;    /* first start state */
  898.  
  899.         if ( ! yyin )
  900.             yyin = stdin;
  901.  
  902.         if ( ! yyout )
  903.             yyout = stdout;
  904.  
  905.         if ( yy_current_buffer )
  906.             yy_init_buffer( yy_current_buffer, yyin );
  907.         else
  908.             yy_current_buffer =
  909.                 yy_create_buffer( yyin, YY_BUF_SIZE );
  910.  
  911.         yy_load_buffer_state();
  912.  
  913.         yy_init = 0;
  914.         }
  915.  
  916.     while ( 1 )        /* loops until end-of-file is reached */
  917.         {
  918.         yy_cp = yy_c_buf_p;
  919.  
  920.         /* Support of yytext. */
  921.         *yy_cp = yy_hold_char;
  922.  
  923.         /* yy_bp points to the position in yy_ch_buf of the start of
  924.          * the current run.
  925.          */
  926.         yy_bp = yy_cp;
  927.  
  928.         yy_current_state = yy_start;
  929.         if ( yy_bp[-1] == '\n' )
  930.             ++yy_current_state;
  931. yy_match:
  932.         do
  933.             {
  934.             register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
  935.             if ( yy_accept[yy_current_state] )
  936.                 {
  937.                 yy_last_accepting_state = yy_current_state;
  938.                 yy_last_accepting_cpos = yy_cp;
  939.                 }
  940.             while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  941.                 {
  942.                 yy_current_state = (int) yy_def[yy_current_state];
  943.                 if ( yy_current_state >= 414 )
  944.                     yy_c = yy_meta[(unsigned int) yy_c];
  945.                 }
  946.             yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  947.             ++yy_cp;
  948.             }
  949.         while ( yy_base[yy_current_state] != 1123 );
  950.  
  951. yy_find_action:
  952.         yy_act = yy_accept[yy_current_state];
  953.  
  954.         YY_DO_BEFORE_ACTION;
  955.  
  956.  
  957. do_action:    /* This label is used only to access EOF actions. */
  958.  
  959.  
  960.         switch ( yy_act )
  961.     { /* beginning of action switch */
  962.             case 0: /* must back up */
  963.             /* undo the effects of YY_DO_BEFORE_ACTION */
  964.             *yy_cp = yy_hold_char;
  965.             yy_cp = yy_last_accepting_cpos;
  966.             yy_current_state = yy_last_accepting_state;
  967.             goto yy_find_action;
  968.  
  969. case 1:
  970. YY_USER_ACTION
  971. # line 72 "../../mindy-1.x/comp/lexer.l"
  972. BEGIN(ini); yyless(0);
  973.     YY_BREAK
  974. case 2:
  975. YY_USER_ACTION
  976. # line 74 "../../mindy-1.x/comp/lexer.l"
  977. BEGIN(key); warn(line_count, "igoring initial #! interpreter comment\n"); line_count++; 
  978.     YY_BREAK
  979. case 3:
  980. YY_USER_ACTION
  981. # line 76 "../../mindy-1.x/comp/lexer.l"
  982. BEGIN(val); return make_header_key();
  983.     YY_BREAK
  984. case 4:
  985. YY_USER_ACTION
  986. # line 77 "../../mindy-1.x/comp/lexer.l"
  987. BEGIN(etc); return make_header_end();
  988.     YY_BREAK
  989. case 5:
  990. YY_USER_ACTION
  991. # line 79 "../../mindy-1.x/comp/lexer.l"
  992. BEGIN(key); return make_header_val();
  993.     YY_BREAK
  994. case 6:
  995. YY_USER_ACTION
  996. # line 81 "../../mindy-1.x/comp/lexer.l"
  997. ;
  998.     YY_BREAK
  999. case 7:
  1000. YY_USER_ACTION
  1001. # line 82 "../../mindy-1.x/comp/lexer.l"
  1002. line_count++;
  1003.     YY_BREAK
  1004. case 8:
  1005. YY_USER_ACTION
  1006. # line 84 "../../mindy-1.x/comp/lexer.l"
  1007. ;
  1008.     YY_BREAK
  1009. case 9:
  1010. YY_USER_ACTION
  1011. # line 85 "../../mindy-1.x/comp/lexer.l"
  1012. skip_multi_line_comment();
  1013.     YY_BREAK
  1014. case 10:
  1015. YY_USER_ACTION
  1016. # line 87 "../../mindy-1.x/comp/lexer.l"
  1017. is(ABSTRACT);
  1018.     YY_BREAK
  1019. case 11:
  1020. YY_USER_ACTION
  1021. # line 88 "../../mindy-1.x/comp/lexer.l"
  1022. is(ABOVE);
  1023.     YY_BREAK
  1024. case 12:
  1025. YY_USER_ACTION
  1026. # line 89 "../../mindy-1.x/comp/lexer.l"
  1027. is(DBEGIN);
  1028.     YY_BREAK
  1029. case 13:
  1030. YY_USER_ACTION
  1031. # line 90 "../../mindy-1.x/comp/lexer.l"
  1032. is(BELOW);
  1033.     YY_BREAK
  1034. case 14:
  1035. YY_USER_ACTION
  1036. # line 91 "../../mindy-1.x/comp/lexer.l"
  1037. is(BLOCK);
  1038.     YY_BREAK
  1039. case 15:
  1040. YY_USER_ACTION
  1041. # line 92 "../../mindy-1.x/comp/lexer.l"
  1042. is(BY);
  1043.     YY_BREAK
  1044. case 16:
  1045. YY_USER_ACTION
  1046. # line 93 "../../mindy-1.x/comp/lexer.l"
  1047. is(CASE);
  1048.     YY_BREAK
  1049. case 17:
  1050. YY_USER_ACTION
  1051. # line 94 "../../mindy-1.x/comp/lexer.l"
  1052. is(CLASS);
  1053.     YY_BREAK
  1054. case 18:
  1055. YY_USER_ACTION
  1056. # line 95 "../../mindy-1.x/comp/lexer.l"
  1057. is(CLEANUP);
  1058.     YY_BREAK
  1059. case 19:
  1060. YY_USER_ACTION
  1061. # line 96 "../../mindy-1.x/comp/lexer.l"
  1062. is(CONCRETE);
  1063.     YY_BREAK
  1064. case 20:
  1065. YY_USER_ACTION
  1066. # line 97 "../../mindy-1.x/comp/lexer.l"
  1067. is(CONSTANT);
  1068.     YY_BREAK
  1069. case 21:
  1070. YY_USER_ACTION
  1071. # line 98 "../../mindy-1.x/comp/lexer.l"
  1072. is(DEFINE);
  1073.     YY_BREAK
  1074. case 22:
  1075. YY_USER_ACTION
  1076. # line 99 "../../mindy-1.x/comp/lexer.l"
  1077. is(ELSE);
  1078.     YY_BREAK
  1079. case 23:
  1080. YY_USER_ACTION
  1081. # line 100 "../../mindy-1.x/comp/lexer.l"
  1082. is(ELSEIF);
  1083.     YY_BREAK
  1084. case 24:
  1085. YY_USER_ACTION
  1086. # line 101 "../../mindy-1.x/comp/lexer.l"
  1087. is(END);
  1088.     YY_BREAK
  1089. case 25:
  1090. YY_USER_ACTION
  1091. # line 102 "../../mindy-1.x/comp/lexer.l"
  1092. is(EXCEPTION);
  1093.     YY_BREAK
  1094. case 26:
  1095. YY_USER_ACTION
  1096. # line 103 "../../mindy-1.x/comp/lexer.l"
  1097. is(FINALLY);
  1098.     YY_BREAK
  1099. case 27:
  1100. YY_USER_ACTION
  1101. # line 104 "../../mindy-1.x/comp/lexer.l"
  1102. is(FOR);
  1103.     YY_BREAK
  1104. case 28:
  1105. YY_USER_ACTION
  1106. # line 105 "../../mindy-1.x/comp/lexer.l"
  1107. is(FREE);
  1108.     YY_BREAK
  1109. case 29:
  1110. YY_USER_ACTION
  1111. # line 106 "../../mindy-1.x/comp/lexer.l"
  1112. is(FROM);
  1113.     YY_BREAK
  1114. case 30:
  1115. YY_USER_ACTION
  1116. # line 107 "../../mindy-1.x/comp/lexer.l"
  1117. is(GENERIC);
  1118.     YY_BREAK
  1119. case 31:
  1120. YY_USER_ACTION
  1121. # line 108 "../../mindy-1.x/comp/lexer.l"
  1122. is(HANDLER);
  1123.     YY_BREAK
  1124. case 32:
  1125. YY_USER_ACTION
  1126. # line 109 "../../mindy-1.x/comp/lexer.l"
  1127. is(IF);
  1128.     YY_BREAK
  1129. case 33:
  1130. YY_USER_ACTION
  1131. # line 110 "../../mindy-1.x/comp/lexer.l"
  1132. is(IN);
  1133.     YY_BREAK
  1134. case 34:
  1135. YY_USER_ACTION
  1136. # line 111 "../../mindy-1.x/comp/lexer.l"
  1137. is(INHERITED);
  1138.     YY_BREAK
  1139. case 35:
  1140. YY_USER_ACTION
  1141. # line 112 "../../mindy-1.x/comp/lexer.l"
  1142. is(INSTANCE);
  1143.     YY_BREAK
  1144. case 36:
  1145. YY_USER_ACTION
  1146. # line 113 "../../mindy-1.x/comp/lexer.l"
  1147. is(KEYED_BY);
  1148.     YY_BREAK
  1149. case 37:
  1150. YY_USER_ACTION
  1151. # line 114 "../../mindy-1.x/comp/lexer.l"
  1152. is(KEYWORD_RESERVED_WORD);
  1153.     YY_BREAK
  1154. case 38:
  1155. YY_USER_ACTION
  1156. # line 115 "../../mindy-1.x/comp/lexer.l"
  1157. is(LET);
  1158.     YY_BREAK
  1159. case 39:
  1160. YY_USER_ACTION
  1161. # line 116 "../../mindy-1.x/comp/lexer.l"
  1162. is(LOCAL);
  1163.     YY_BREAK
  1164. case 40:
  1165. YY_USER_ACTION
  1166. # line 117 "../../mindy-1.x/comp/lexer.l"
  1167. is(METHOD);
  1168.     YY_BREAK
  1169. case 41:
  1170. YY_USER_ACTION
  1171. # line 118 "../../mindy-1.x/comp/lexer.l"
  1172. is(OPEN);
  1173.     YY_BREAK
  1174. case 42:
  1175. YY_USER_ACTION
  1176. # line 119 "../../mindy-1.x/comp/lexer.l"
  1177. is(OTHERWISE);
  1178.     YY_BREAK
  1179. case 43:
  1180. YY_USER_ACTION
  1181. # line 120 "../../mindy-1.x/comp/lexer.l"
  1182. is(PRIMARY);
  1183.     YY_BREAK
  1184. case 44:
  1185. YY_USER_ACTION
  1186. # line 121 "../../mindy-1.x/comp/lexer.l"
  1187. is(REQUIRED);
  1188.     YY_BREAK
  1189. case 45:
  1190. YY_USER_ACTION
  1191. # line 122 "../../mindy-1.x/comp/lexer.l"
  1192. is(SEAL);
  1193.     YY_BREAK
  1194. case 46:
  1195. YY_USER_ACTION
  1196. # line 123 "../../mindy-1.x/comp/lexer.l"
  1197. is(SEALED);
  1198.     YY_BREAK
  1199. case 47:
  1200. YY_USER_ACTION
  1201. # line 124 "../../mindy-1.x/comp/lexer.l"
  1202. is(SELECT);
  1203.     YY_BREAK
  1204. case 48:
  1205. YY_USER_ACTION
  1206. # line 125 "../../mindy-1.x/comp/lexer.l"
  1207. is(SLOT);
  1208.     YY_BREAK
  1209. case 49:
  1210. YY_USER_ACTION
  1211. # line 126 "../../mindy-1.x/comp/lexer.l"
  1212. is(SUBCLASS);
  1213.     YY_BREAK
  1214. case 50:
  1215. YY_USER_ACTION
  1216. # line 127 "../../mindy-1.x/comp/lexer.l"
  1217. is(THEN);
  1218.     YY_BREAK
  1219. case 51:
  1220. YY_USER_ACTION
  1221. # line 128 "../../mindy-1.x/comp/lexer.l"
  1222. is(TO);
  1223.     YY_BREAK
  1224. case 52:
  1225. YY_USER_ACTION
  1226. # line 129 "../../mindy-1.x/comp/lexer.l"
  1227. is(UNLESS);
  1228.     YY_BREAK
  1229. case 53:
  1230. YY_USER_ACTION
  1231. # line 130 "../../mindy-1.x/comp/lexer.l"
  1232. is(UNTIL);
  1233.     YY_BREAK
  1234. case 54:
  1235. YY_USER_ACTION
  1236. # line 131 "../../mindy-1.x/comp/lexer.l"
  1237. is(VARIABLE);
  1238.     YY_BREAK
  1239. case 55:
  1240. YY_USER_ACTION
  1241. # line 132 "../../mindy-1.x/comp/lexer.l"
  1242. is(VIRTUAL);
  1243.     YY_BREAK
  1244. case 56:
  1245. YY_USER_ACTION
  1246. # line 133 "../../mindy-1.x/comp/lexer.l"
  1247. is(WHILE);
  1248.     YY_BREAK
  1249. case 57:
  1250. YY_USER_ACTION
  1251. # line 135 "../../mindy-1.x/comp/lexer.l"
  1252. is(MODULE);
  1253.     YY_BREAK
  1254. case 58:
  1255. YY_USER_ACTION
  1256. # line 136 "../../mindy-1.x/comp/lexer.l"
  1257. is(LIBRARY);
  1258.     YY_BREAK
  1259. case 59:
  1260. YY_USER_ACTION
  1261. # line 137 "../../mindy-1.x/comp/lexer.l"
  1262. is(EXPORT);
  1263.     YY_BREAK
  1264. case 60:
  1265. YY_USER_ACTION
  1266. # line 138 "../../mindy-1.x/comp/lexer.l"
  1267. is(CREATE);
  1268.     YY_BREAK
  1269. case 61:
  1270. YY_USER_ACTION
  1271. # line 139 "../../mindy-1.x/comp/lexer.l"
  1272. is(USE);
  1273.     YY_BREAK
  1274. case 62:
  1275. YY_USER_ACTION
  1276. # line 140 "../../mindy-1.x/comp/lexer.l"
  1277. is(ALL);
  1278.     YY_BREAK
  1279. case 63:
  1280. YY_USER_ACTION
  1281. # line 142 "../../mindy-1.x/comp/lexer.l"
  1282. is(PREFIX_OPTION);
  1283.     YY_BREAK
  1284. case 64:
  1285. YY_USER_ACTION
  1286. # line 143 "../../mindy-1.x/comp/lexer.l"
  1287. is(IMPORT_OPTION);
  1288.     YY_BREAK
  1289. case 65:
  1290. YY_USER_ACTION
  1291. # line 144 "../../mindy-1.x/comp/lexer.l"
  1292. is(EXCLUDE_OPTION);
  1293.     YY_BREAK
  1294. case 66:
  1295. YY_USER_ACTION
  1296. # line 145 "../../mindy-1.x/comp/lexer.l"
  1297. is(EXPORT_OPTION);
  1298.     YY_BREAK
  1299. case 67:
  1300. YY_USER_ACTION
  1301. # line 146 "../../mindy-1.x/comp/lexer.l"
  1302. is(RENAME_OPTION);
  1303.     YY_BREAK
  1304. case 68:
  1305. YY_USER_ACTION
  1306. # line 148 "../../mindy-1.x/comp/lexer.l"
  1307. is(LPAREN);
  1308.     YY_BREAK
  1309. case 69:
  1310. YY_USER_ACTION
  1311. # line 149 "../../mindy-1.x/comp/lexer.l"
  1312. is(RPAREN);
  1313.     YY_BREAK
  1314. case 70:
  1315. YY_USER_ACTION
  1316. # line 150 "../../mindy-1.x/comp/lexer.l"
  1317. is(COMMA);
  1318.     YY_BREAK
  1319. case 71:
  1320. YY_USER_ACTION
  1321. # line 151 "../../mindy-1.x/comp/lexer.l"
  1322. is(DOT);
  1323.     YY_BREAK
  1324. case 72:
  1325. YY_USER_ACTION
  1326. # line 152 "../../mindy-1.x/comp/lexer.l"
  1327. is(SEMI);
  1328.     YY_BREAK
  1329. case 73:
  1330. YY_USER_ACTION
  1331. # line 153 "../../mindy-1.x/comp/lexer.l"
  1332. is(LBRACKET);
  1333.     YY_BREAK
  1334. case 74:
  1335. YY_USER_ACTION
  1336. # line 154 "../../mindy-1.x/comp/lexer.l"
  1337. is(RBRACKET);
  1338.     YY_BREAK
  1339. case 75:
  1340. YY_USER_ACTION
  1341. # line 155 "../../mindy-1.x/comp/lexer.l"
  1342. is(LBRACE);
  1343.     YY_BREAK
  1344. case 76:
  1345. YY_USER_ACTION
  1346. # line 156 "../../mindy-1.x/comp/lexer.l"
  1347. is(RBRACE);
  1348.     YY_BREAK
  1349. case 77:
  1350. YY_USER_ACTION
  1351. # line 157 "../../mindy-1.x/comp/lexer.l"
  1352. is(COLON_COLON);
  1353.     YY_BREAK
  1354. case 78:
  1355. YY_USER_ACTION
  1356. # line 158 "../../mindy-1.x/comp/lexer.l"
  1357. is(MINUS);
  1358.     YY_BREAK
  1359. case 79:
  1360. YY_USER_ACTION
  1361. # line 159 "../../mindy-1.x/comp/lexer.l"
  1362. is(TILDE);
  1363.     YY_BREAK
  1364. case 80:
  1365. YY_USER_ACTION
  1366. # line 160 "../../mindy-1.x/comp/lexer.l"
  1367. is(EQUAL);
  1368.     YY_BREAK
  1369. case 81:
  1370. YY_USER_ACTION
  1371. # line 161 "../../mindy-1.x/comp/lexer.l"
  1372. is(EQUAL_EQUAL);
  1373.     YY_BREAK
  1374. case 82:
  1375. YY_USER_ACTION
  1376. # line 162 "../../mindy-1.x/comp/lexer.l"
  1377. is(ARROW);
  1378.     YY_BREAK
  1379. case 83:
  1380. YY_USER_ACTION
  1381. # line 163 "../../mindy-1.x/comp/lexer.l"
  1382. is(SHARP_PAREN);
  1383.     YY_BREAK
  1384. case 84:
  1385. YY_USER_ACTION
  1386. # line 164 "../../mindy-1.x/comp/lexer.l"
  1387. is(SHARP_BRACKET);
  1388.     YY_BREAK
  1389. case 85:
  1390. YY_USER_ACTION
  1391. # line 165 "../../mindy-1.x/comp/lexer.l"
  1392. is(SHARP_T);
  1393.     YY_BREAK
  1394. case 86:
  1395. YY_USER_ACTION
  1396. # line 166 "../../mindy-1.x/comp/lexer.l"
  1397. is(SHARP_F);
  1398.     YY_BREAK
  1399. case 87:
  1400. YY_USER_ACTION
  1401. # line 167 "../../mindy-1.x/comp/lexer.l"
  1402. is(NEXT);
  1403.     YY_BREAK
  1404. case 88:
  1405. YY_USER_ACTION
  1406. # line 168 "../../mindy-1.x/comp/lexer.l"
  1407. is(REST);
  1408.     YY_BREAK
  1409. case 89:
  1410. YY_USER_ACTION
  1411. # line 169 "../../mindy-1.x/comp/lexer.l"
  1412. is(KEY);
  1413.     YY_BREAK
  1414. case 90:
  1415. YY_USER_ACTION
  1416. # line 170 "../../mindy-1.x/comp/lexer.l"
  1417. is(ALL_KEYS);
  1418.     YY_BREAK
  1419. case 91:
  1420. YY_USER_ACTION
  1421. # line 172 "../../mindy-1.x/comp/lexer.l"
  1422. is(INTEGER);
  1423.     YY_BREAK
  1424. case 92:
  1425. YY_USER_ACTION
  1426. # line 173 "../../mindy-1.x/comp/lexer.l"
  1427. is(INTEGER);
  1428.     YY_BREAK
  1429. case 93:
  1430. YY_USER_ACTION
  1431. # line 174 "../../mindy-1.x/comp/lexer.l"
  1432. is(INTEGER);
  1433.     YY_BREAK
  1434. case 94:
  1435. YY_USER_ACTION
  1436. # line 175 "../../mindy-1.x/comp/lexer.l"
  1437. is(INTEGER);
  1438.     YY_BREAK
  1439. case 95:
  1440. YY_USER_ACTION
  1441. # line 177 "../../mindy-1.x/comp/lexer.l"
  1442. is(FLOAT);
  1443.     YY_BREAK
  1444. case 96:
  1445. YY_USER_ACTION
  1446. # line 178 "../../mindy-1.x/comp/lexer.l"
  1447. is(FLOAT);
  1448.     YY_BREAK
  1449. case 97:
  1450. YY_USER_ACTION
  1451. # line 179 "../../mindy-1.x/comp/lexer.l"
  1452. is(FLOAT);
  1453.     YY_BREAK
  1454. case 98:
  1455. YY_USER_ACTION
  1456. # line 181 "../../mindy-1.x/comp/lexer.l"
  1457. is(CHARACTER);
  1458.     YY_BREAK
  1459. case 99:
  1460. YY_USER_ACTION
  1461. # line 182 "../../mindy-1.x/comp/lexer.l"
  1462. is(CHARACTER);
  1463.     YY_BREAK
  1464. case 100:
  1465. YY_USER_ACTION
  1466. # line 184 "../../mindy-1.x/comp/lexer.l"
  1467. is(STRING);
  1468.     YY_BREAK
  1469. case 101:
  1470. YY_USER_ACTION
  1471. # line 186 "../../mindy-1.x/comp/lexer.l"
  1472. is(BINARY_OPERATOR);
  1473.     YY_BREAK
  1474. case 102:
  1475. YY_USER_ACTION
  1476. # line 187 "../../mindy-1.x/comp/lexer.l"
  1477. is(SYMBOL);
  1478.     YY_BREAK
  1479. case 103:
  1480. YY_USER_ACTION
  1481. # line 188 "../../mindy-1.x/comp/lexer.l"
  1482. is(SYMBOL);
  1483.     YY_BREAK
  1484. case 104:
  1485. YY_USER_ACTION
  1486. # line 189 "../../mindy-1.x/comp/lexer.l"
  1487. is(KEYWORD);
  1488.     YY_BREAK
  1489. case 105:
  1490. YY_USER_ACTION
  1491. # line 190 "../../mindy-1.x/comp/lexer.l"
  1492. is(SYMBOL_LITERAL);
  1493.     YY_BREAK
  1494. case 106:
  1495. YY_USER_ACTION
  1496. # line 192 "../../mindy-1.x/comp/lexer.l"
  1497. is(BOGUS);
  1498.     YY_BREAK
  1499. case 107:
  1500. YY_USER_ACTION
  1501. # line 194 "../../mindy-1.x/comp/lexer.l"
  1502. ECHO;
  1503.     YY_BREAK
  1504. case YY_STATE_EOF(INITIAL):
  1505. case YY_STATE_EOF(ini):
  1506. case YY_STATE_EOF(key):
  1507. case YY_STATE_EOF(val):
  1508. case YY_STATE_EOF(etc):
  1509.     yyterminate();
  1510.  
  1511.     case YY_END_OF_BUFFER:
  1512.         {
  1513.         /* Amount of text matched not including the EOB char. */
  1514.         int yy_amount_of_matched_text = yy_cp - yytext_ptr - 1;
  1515.  
  1516.         /* Undo the effects of YY_DO_BEFORE_ACTION. */
  1517.         *yy_cp = yy_hold_char;
  1518.  
  1519.         if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
  1520.             {
  1521.             /* We're scanning a new file or input source.  It's
  1522.              * possible that this happened because the user
  1523.              * just pointed yyin at a new source and called
  1524.              * yylex().  If so, then we have to assure
  1525.              * consistency between yy_current_buffer and our
  1526.              * globals.  Here is the right place to do so, because
  1527.              * this is the first action (other than possibly a
  1528.              * back-up) that will match for the new input source.
  1529.              */
  1530.             yy_n_chars = yy_current_buffer->yy_n_chars;
  1531.             yy_current_buffer->yy_input_file = yyin;
  1532.             yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
  1533.             }
  1534.  
  1535.         /* Note that here we test for yy_c_buf_p "<=" to the position
  1536.          * of the first EOB in the buffer, since yy_c_buf_p will
  1537.          * already have been incremented past the NUL character
  1538.          * (since all states make transitions on EOB to the
  1539.          * end-of-buffer state).  Contrast this with the test
  1540.          * in input().
  1541.          */
  1542.         if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  1543.             { /* This was really a NUL. */
  1544.             yy_state_type yy_next_state;
  1545.  
  1546.             yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
  1547.  
  1548.             yy_current_state = yy_get_previous_state();
  1549.  
  1550.             /* Okay, we're now positioned to make the NUL
  1551.              * transition.  We couldn't have
  1552.              * yy_get_previous_state() go ahead and do it
  1553.              * for us because it doesn't know how to deal
  1554.              * with the possibility of jamming (and we don't
  1555.              * want to build jamming into it because then it
  1556.              * will run more slowly).
  1557.              */
  1558.  
  1559.             yy_next_state = yy_try_NUL_trans( yy_current_state );
  1560.  
  1561.             yy_bp = yytext_ptr + YY_MORE_ADJ;
  1562.  
  1563.             if ( yy_next_state )
  1564.                 {
  1565.                 /* Consume the NUL. */
  1566.                 yy_cp = ++yy_c_buf_p;
  1567.                 yy_current_state = yy_next_state;
  1568.                 goto yy_match;
  1569.                 }
  1570.  
  1571.             else
  1572.                 {
  1573.                             yy_cp = yy_c_buf_p;
  1574.                 goto yy_find_action;
  1575.                 }
  1576.             }
  1577.  
  1578.         else switch ( yy_get_next_buffer() )
  1579.             {
  1580.             case EOB_ACT_END_OF_FILE:
  1581.                 {
  1582.                 yy_did_buffer_switch_on_eof = 0;
  1583.  
  1584.                 if ( yywrap() )
  1585.                     {
  1586.                     /* Note: because we've taken care in
  1587.                      * yy_get_next_buffer() to have set up
  1588.                      * yytext, we can now set up
  1589.                      * yy_c_buf_p so that if some total
  1590.                      * hoser (like flex itself) wants to
  1591.                      * call the scanner after we return the
  1592.                      * YY_NULL, it'll still work - another
  1593.                      * YY_NULL will get returned.
  1594.                      */
  1595.                     yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
  1596.  
  1597.                     yy_act = YY_STATE_EOF(YY_START);
  1598.                     goto do_action;
  1599.                     }
  1600.  
  1601.                 else
  1602.                     {
  1603.                     if ( ! yy_did_buffer_switch_on_eof )
  1604.                         YY_NEW_FILE;
  1605.                     }
  1606.                 break;
  1607.                 }
  1608.  
  1609.             case EOB_ACT_CONTINUE_SCAN:
  1610.                 yy_c_buf_p =
  1611.                     yytext_ptr + yy_amount_of_matched_text;
  1612.  
  1613.                 yy_current_state = yy_get_previous_state();
  1614.  
  1615.                 yy_cp = yy_c_buf_p;
  1616.                 yy_bp = yytext_ptr + YY_MORE_ADJ;
  1617.                 goto yy_match;
  1618.  
  1619.             case EOB_ACT_LAST_MATCH:
  1620.                 yy_c_buf_p =
  1621.                 &yy_current_buffer->yy_ch_buf[yy_n_chars];
  1622.  
  1623.                 yy_current_state = yy_get_previous_state();
  1624.  
  1625.                 yy_cp = yy_c_buf_p;
  1626.                 yy_bp = yytext_ptr + YY_MORE_ADJ;
  1627.                 goto yy_find_action;
  1628.             }
  1629.         break;
  1630.         }
  1631.  
  1632.     default:
  1633.         YY_FATAL_ERROR(
  1634.             "fatal flex scanner internal error--no action found" );
  1635.     } /* end of action switch */
  1636.         } /* end of scanning one token */
  1637.     } /* end of yylex */
  1638.  
  1639.  
  1640. /* yy_get_next_buffer - try to read in a new buffer
  1641.  *
  1642.  * Returns a code representing an action:
  1643.  *    EOB_ACT_LAST_MATCH -
  1644.  *    EOB_ACT_CONTINUE_SCAN - continue scanning from current position
  1645.  *    EOB_ACT_END_OF_FILE - end of file
  1646.  */
  1647.  
  1648. static int yy_get_next_buffer()
  1649.     {
  1650.     register char *dest = yy_current_buffer->yy_ch_buf;
  1651.     register char *source = yytext_ptr - 1; /* copy prev. char, too */
  1652.     register int number_to_move, i;
  1653.     int ret_val;
  1654.  
  1655.     if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
  1656.         YY_FATAL_ERROR(
  1657.         "fatal flex scanner internal error--end of buffer missed" );
  1658.  
  1659.     if ( yy_current_buffer->yy_fill_buffer == 0 )
  1660.         { /* Don't try to fill the buffer, so this is an EOF. */
  1661.         if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
  1662.             {
  1663.             /* We matched a singled characater, the EOB, so
  1664.              * treat this as a final EOF.
  1665.              */
  1666.             return EOB_ACT_END_OF_FILE;
  1667.             }
  1668.  
  1669.         else
  1670.             {
  1671.             /* We matched some text prior to the EOB, first
  1672.              * process it.
  1673.              */
  1674.             return EOB_ACT_LAST_MATCH;
  1675.             }
  1676.         }
  1677.  
  1678.     /* Try to read more data. */
  1679.  
  1680.     /* First move last chars to start of buffer. */
  1681.     number_to_move = yy_c_buf_p - yytext_ptr;
  1682.  
  1683.     for ( i = 0; i < number_to_move; ++i )
  1684.         *(dest++) = *(source++);
  1685.  
  1686.     if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
  1687.         /* don't do the read, it's not guaranteed to return an EOF,
  1688.          * just force an EOF
  1689.          */
  1690.         yy_n_chars = 0;
  1691.  
  1692.     else
  1693.         {
  1694.         int num_to_read =
  1695.             yy_current_buffer->yy_buf_size - number_to_move - 1;
  1696.  
  1697.         while ( num_to_read <= 0 )
  1698.             { /* Not enough room in the buffer - grow it. */
  1699. #ifdef YY_USES_REJECT
  1700.             YY_FATAL_ERROR(
  1701. "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
  1702. #else
  1703.  
  1704.             /* just a shorter name for the current buffer */
  1705.             YY_BUFFER_STATE b = yy_current_buffer;
  1706.  
  1707.             int yy_c_buf_p_offset = yy_c_buf_p - b->yy_ch_buf;
  1708.  
  1709.             b->yy_buf_size *= 2;
  1710.             b->yy_ch_buf = (char *)
  1711.                 yy_flex_realloc( (void *) b->yy_ch_buf,
  1712.                          b->yy_buf_size );
  1713.  
  1714.             if ( ! b->yy_ch_buf )
  1715.                 YY_FATAL_ERROR(
  1716.                 "fatal error - scanner input buffer overflow" );
  1717.  
  1718.             yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
  1719.  
  1720.             num_to_read = yy_current_buffer->yy_buf_size -
  1721.                         number_to_move - 1;
  1722. #endif
  1723.             }
  1724.  
  1725.         if ( num_to_read > YY_READ_BUF_SIZE )
  1726.             num_to_read = YY_READ_BUF_SIZE;
  1727.  
  1728.         /* Read in more data. */
  1729.         YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
  1730.             yy_n_chars, num_to_read );
  1731.         }
  1732.  
  1733.     if ( yy_n_chars == 0 )
  1734.         {
  1735.         if ( number_to_move - YY_MORE_ADJ == 1 )
  1736.             {
  1737.             ret_val = EOB_ACT_END_OF_FILE;
  1738.             yyrestart( yyin );
  1739.             }
  1740.  
  1741.         else
  1742.             {
  1743.             ret_val = EOB_ACT_LAST_MATCH;
  1744.             yy_current_buffer->yy_buffer_status =
  1745.                 YY_BUFFER_EOF_PENDING;
  1746.             }
  1747.         }
  1748.  
  1749.     else
  1750.         ret_val = EOB_ACT_CONTINUE_SCAN;
  1751.  
  1752.     yy_n_chars += number_to_move;
  1753.     yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  1754.     yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  1755.  
  1756.     /* yytext begins at the second character in yy_ch_buf; the first
  1757.      * character is the one which preceded it before reading in the latest
  1758.      * buffer; it needs to be kept around in case it's a newline, so
  1759.      * yy_get_previous_state() will have with '^' rules active.
  1760.      */
  1761.  
  1762.     yytext_ptr = &yy_current_buffer->yy_ch_buf[1];
  1763.  
  1764.     return ret_val;
  1765.     }
  1766.  
  1767.  
  1768. /* yy_get_previous_state - get the state just before the EOB char was reached */
  1769.  
  1770. static yy_state_type yy_get_previous_state()
  1771.     {
  1772.     register yy_state_type yy_current_state;
  1773.     register char *yy_cp;
  1774.  
  1775.     register char *yy_bp = yytext_ptr;
  1776.  
  1777.     yy_current_state = yy_start;
  1778.     if ( yy_bp[-1] == '\n' )
  1779.         ++yy_current_state;
  1780.  
  1781.     for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
  1782.         {
  1783.         register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
  1784.         if ( yy_accept[yy_current_state] )
  1785.             {
  1786.             yy_last_accepting_state = yy_current_state;
  1787.             yy_last_accepting_cpos = yy_cp;
  1788.             }
  1789.         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1790.             {
  1791.             yy_current_state = (int) yy_def[yy_current_state];
  1792.             if ( yy_current_state >= 414 )
  1793.                 yy_c = yy_meta[(unsigned int) yy_c];
  1794.             }
  1795.         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  1796.         }
  1797.  
  1798.     return yy_current_state;
  1799.     }
  1800.  
  1801.  
  1802. /* yy_try_NUL_trans - try to make a transition on the NUL character
  1803.  *
  1804.  * synopsis
  1805.  *    next_state = yy_try_NUL_trans( current_state );
  1806.  */
  1807.  
  1808. #ifdef YY_USE_PROTOS
  1809. static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
  1810. #else
  1811. static yy_state_type yy_try_NUL_trans( yy_current_state )
  1812. yy_state_type yy_current_state;
  1813. #endif
  1814.     {
  1815.     register int yy_is_jam;
  1816.     register char *yy_cp = yy_c_buf_p;
  1817.  
  1818.     register YY_CHAR yy_c = 1;
  1819.     if ( yy_accept[yy_current_state] )
  1820.         {
  1821.         yy_last_accepting_state = yy_current_state;
  1822.         yy_last_accepting_cpos = yy_cp;
  1823.         }
  1824.     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1825.         {
  1826.         yy_current_state = (int) yy_def[yy_current_state];
  1827.         if ( yy_current_state >= 414 )
  1828.             yy_c = yy_meta[(unsigned int) yy_c];
  1829.         }
  1830.     yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  1831.     yy_is_jam = (yy_current_state == 413);
  1832.  
  1833.     return yy_is_jam ? 0 : yy_current_state;
  1834.     }
  1835.  
  1836.  
  1837. #ifdef YY_USE_PROTOS
  1838. static void yyunput( int c, register char *yy_bp )
  1839. #else
  1840. static void yyunput( c, yy_bp )
  1841. int c;
  1842. register char *yy_bp;
  1843. #endif
  1844.     {
  1845.     register char *yy_cp = yy_c_buf_p;
  1846.  
  1847.     /* undo effects of setting up yytext */
  1848.     *yy_cp = yy_hold_char;
  1849.  
  1850.     if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  1851.         { /* need to shift things up to make room */
  1852.         /* +2 for EOB chars. */
  1853.         register int number_to_move = yy_n_chars + 2;
  1854.         register char *dest = &yy_current_buffer->yy_ch_buf[
  1855.                     yy_current_buffer->yy_buf_size + 2];
  1856.         register char *source =
  1857.                 &yy_current_buffer->yy_ch_buf[number_to_move];
  1858.  
  1859.         while ( source > yy_current_buffer->yy_ch_buf )
  1860.             *--dest = *--source;
  1861.  
  1862.         yy_cp += dest - source;
  1863.         yy_bp += dest - source;
  1864.         yy_n_chars = yy_current_buffer->yy_buf_size;
  1865.  
  1866.         if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  1867.             YY_FATAL_ERROR( "flex scanner push-back overflow" );
  1868.         }
  1869.  
  1870.     if ( yy_cp > yy_bp && yy_cp[-1] == '\n' )
  1871.         yy_cp[-2] = '\n';
  1872.  
  1873.     *--yy_cp = (char) c;
  1874.  
  1875.  
  1876.     /* Note: the formal parameter *must* be called "yy_bp" for this
  1877.      * macro to now work correctly.
  1878.      */
  1879.     YY_DO_BEFORE_ACTION; /* set up yytext again */
  1880.     }
  1881.  
  1882.  
  1883. #ifdef __cplusplus
  1884. static int yyinput()
  1885. #else
  1886. static int input()
  1887. #endif
  1888.     {
  1889.     int c;
  1890.  
  1891.     *yy_c_buf_p = yy_hold_char;
  1892.  
  1893.     if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
  1894.         {
  1895.         /* yy_c_buf_p now points to the character we want to return.
  1896.          * If this occurs *before* the EOB characters, then it's a
  1897.          * valid NUL; if not, then we've hit the end of the buffer.
  1898.          */
  1899.         if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  1900.             /* This was really a NUL. */
  1901.             *yy_c_buf_p = '\0';
  1902.  
  1903.         else
  1904.             { /* need more input */
  1905.             yytext_ptr = yy_c_buf_p;
  1906.             ++yy_c_buf_p;
  1907.  
  1908.             switch ( yy_get_next_buffer() )
  1909.                 {
  1910.                 case EOB_ACT_END_OF_FILE:
  1911.                     {
  1912.                     if ( yywrap() )
  1913.                         {
  1914.                         yy_c_buf_p =
  1915.                         yytext_ptr + YY_MORE_ADJ;
  1916.                         return EOF;
  1917.                         }
  1918.  
  1919.                     YY_NEW_FILE;
  1920. #ifdef __cplusplus
  1921.                     return yyinput();
  1922. #else
  1923.                     return input();
  1924. #endif
  1925.                     }
  1926.  
  1927.                 case EOB_ACT_CONTINUE_SCAN:
  1928.                     yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
  1929.                     break;
  1930.  
  1931.                 case EOB_ACT_LAST_MATCH:
  1932. #ifdef __cplusplus
  1933.                     YY_FATAL_ERROR(
  1934.                     "unexpected last match in yyinput()" );
  1935. #else
  1936.                     YY_FATAL_ERROR(
  1937.                     "unexpected last match in input()" );
  1938. #endif
  1939.                 }
  1940.             }
  1941.         }
  1942.  
  1943.     c = *(unsigned char *) yy_c_buf_p;    /* cast for 8-bit char's */
  1944.     *yy_c_buf_p = '\0';    /* preserve yytext */
  1945.     yy_hold_char = *++yy_c_buf_p;
  1946.  
  1947.     return c;
  1948.     }
  1949.  
  1950.  
  1951. #ifdef YY_USE_PROTOS
  1952. void yyrestart( FILE *input_file )
  1953. #else
  1954. void yyrestart( input_file )
  1955. FILE *input_file;
  1956. #endif
  1957.     {
  1958.     if ( ! yy_current_buffer )
  1959.         yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
  1960.  
  1961.     yy_init_buffer( yy_current_buffer, input_file );
  1962.     yy_load_buffer_state();
  1963.     }
  1964.  
  1965.  
  1966. #ifdef YY_USE_PROTOS
  1967. void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
  1968. #else
  1969. void yy_switch_to_buffer( new_buffer )
  1970. YY_BUFFER_STATE new_buffer;
  1971. #endif
  1972.     {
  1973.     if ( yy_current_buffer == new_buffer )
  1974.         return;
  1975.  
  1976.     if ( yy_current_buffer )
  1977.         {
  1978.         /* Flush out information for old buffer. */
  1979.         *yy_c_buf_p = yy_hold_char;
  1980.         yy_current_buffer->yy_buf_pos = yy_c_buf_p;
  1981.         yy_current_buffer->yy_n_chars = yy_n_chars;
  1982.         }
  1983.  
  1984.     yy_current_buffer = new_buffer;
  1985.     yy_load_buffer_state();
  1986.  
  1987.     /* We don't actually know whether we did this switch during
  1988.      * EOF (yywrap()) processing, but the only time this flag
  1989.      * is looked at is after yywrap() is called, so it's safe
  1990.      * to go ahead and always set it.
  1991.      */
  1992.     yy_did_buffer_switch_on_eof = 1;
  1993.     }
  1994.  
  1995.  
  1996. #ifdef YY_USE_PROTOS
  1997. void yy_load_buffer_state( void )
  1998. #else
  1999. void yy_load_buffer_state()
  2000. #endif
  2001.     {
  2002.     yy_n_chars = yy_current_buffer->yy_n_chars;
  2003.     yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
  2004.     yyin = yy_current_buffer->yy_input_file;
  2005.     yy_hold_char = *yy_c_buf_p;
  2006.     }
  2007.  
  2008.  
  2009. #ifdef YY_USE_PROTOS
  2010. YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
  2011. #else
  2012. YY_BUFFER_STATE yy_create_buffer( file, size )
  2013. FILE *file;
  2014. int size;
  2015. #endif
  2016.     {
  2017.     YY_BUFFER_STATE b;
  2018.  
  2019.     b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
  2020.  
  2021.     if ( ! b )
  2022.         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  2023.  
  2024.     b->yy_buf_size = size;
  2025.  
  2026.     /* yy_ch_buf has to be 2 characters longer than the size given because
  2027.      * we need to put in 2 end-of-buffer characters.
  2028.      */
  2029.     b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
  2030.  
  2031.     if ( ! b->yy_ch_buf )
  2032.         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  2033.  
  2034.     yy_init_buffer( b, file );
  2035.  
  2036.     return b;
  2037.     }
  2038.  
  2039.  
  2040. #ifdef YY_USE_PROTOS
  2041. void yy_delete_buffer( YY_BUFFER_STATE b )
  2042. #else
  2043. void yy_delete_buffer( b )
  2044. YY_BUFFER_STATE b;
  2045. #endif
  2046.     {
  2047.     if ( b == yy_current_buffer )
  2048.         yy_current_buffer = (YY_BUFFER_STATE) 0;
  2049.  
  2050.     yy_flex_free( (void *) b->yy_ch_buf );
  2051.     yy_flex_free( (void *) b );
  2052.     }
  2053.  
  2054.  
  2055. #ifdef YY_USE_PROTOS
  2056. void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
  2057. #else
  2058. void yy_init_buffer( b, file )
  2059. YY_BUFFER_STATE b;
  2060. FILE *file;
  2061. #endif
  2062.     {
  2063.     b->yy_input_file = file;
  2064.  
  2065.     /* We put in the '\n' and start reading from [1] so that an
  2066.      * initial match-at-newline will be true.
  2067.      */
  2068.  
  2069.     b->yy_ch_buf[0] = '\n';
  2070.     b->yy_n_chars = 1;
  2071.  
  2072.     /* We always need two end-of-buffer characters.  The first causes
  2073.      * a transition to the end-of-buffer state.  The second causes
  2074.      * a jam in that state.
  2075.      */
  2076.     b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
  2077.     b->yy_ch_buf[2] = YY_END_OF_BUFFER_CHAR;
  2078.  
  2079.     b->yy_buf_pos = &b->yy_ch_buf[1];
  2080.  
  2081.     b->yy_is_interactive = file ? isatty( fileno(file) ) : 0;
  2082.  
  2083.     b->yy_fill_buffer = 1;
  2084.  
  2085.     b->yy_buffer_status = YY_BUFFER_NEW;
  2086.     }
  2087.  
  2088.  
  2089. #ifdef YY_USE_PROTOS
  2090. static void yy_push_state( int new_state )
  2091. #else
  2092. static void yy_push_state( new_state )
  2093. int new_state;
  2094. #endif
  2095.     {
  2096.     if ( yy_start_stack_ptr >= yy_start_stack_depth )
  2097.         {
  2098.         int new_size;
  2099.  
  2100.         yy_start_stack_depth += YY_START_STACK_INCR;
  2101.         new_size = yy_start_stack_depth * sizeof( int );
  2102.  
  2103.         if ( ! yy_start_stack )
  2104.             yy_start_stack = (int *) yy_flex_alloc( new_size );
  2105.  
  2106.         else
  2107.             yy_start_stack = (int *) yy_flex_realloc(
  2108.                     (void *) yy_start_stack, new_size );
  2109.  
  2110.         if ( ! yy_start_stack )
  2111.             YY_FATAL_ERROR(
  2112.             "out of memory expanding start-condition stack" );
  2113.         }
  2114.  
  2115.     yy_start_stack[yy_start_stack_ptr++] = YY_START;
  2116.  
  2117.     BEGIN(new_state);
  2118.     }
  2119.  
  2120.  
  2121. static void yy_pop_state()
  2122.     {
  2123.     if ( --yy_start_stack_ptr < 0 )
  2124.         YY_FATAL_ERROR( "start-condition stack underflow" );
  2125.  
  2126.     BEGIN(yy_start_stack[yy_start_stack_ptr]);
  2127.     }
  2128.  
  2129.  
  2130. static int yy_top_state()
  2131.     {
  2132.     return yy_start_stack[yy_start_stack_ptr - 1];
  2133.     }
  2134.  
  2135.  
  2136. #ifdef YY_USE_PROTOS
  2137. static void yy_fatal_error( const char msg[] )
  2138. #else
  2139. static void yy_fatal_error( msg )
  2140. char msg[];
  2141. #endif
  2142.     {
  2143.     (void) fprintf( stderr, "%s\n", msg );
  2144.     exit( 1 );
  2145.     }
  2146.  
  2147.  
  2148.  
  2149. /* Redefine yyless() so it works in section 3 code. */
  2150.  
  2151. #undef yyless
  2152. #define yyless(n) \
  2153.     do \
  2154.         { \
  2155.         /* Undo effects of setting up yytext. */ \
  2156.         yytext[yyleng] = yy_hold_char; \
  2157.         yy_c_buf_p = yytext + n - YY_MORE_ADJ; \
  2158.         yy_hold_char = *yy_c_buf_p; \
  2159.         *yy_c_buf_p = '\0'; \
  2160.         yyleng = n; \
  2161.         } \
  2162.     while ( 0 )
  2163.  
  2164.  
  2165. /* Internal utility routines. */
  2166.  
  2167. #ifndef yytext_ptr
  2168. #ifdef YY_USE_PROTOS
  2169. static void yy_flex_strncpy( char *s1, const char *s2, int n )
  2170. #else
  2171. static void yy_flex_strncpy( s1, s2, n )
  2172. char *s1;
  2173. const char *s2;
  2174. int n;
  2175. #endif
  2176.     {
  2177.     register int i;
  2178.     for ( i = 0; i < n; ++i )
  2179.         s1[i] = s2[i];
  2180.     }
  2181. #endif
  2182.  
  2183.  
  2184. #ifdef YY_USE_PROTOS
  2185. static void *yy_flex_alloc( unsigned int size )
  2186. #else
  2187. static void *yy_flex_alloc( size )
  2188. unsigned int size;
  2189. #endif
  2190.     {
  2191.     return (void *) malloc( size );
  2192.     }
  2193.  
  2194. #ifdef YY_USE_PROTOS
  2195. static void *yy_flex_realloc( void *ptr, unsigned int size )
  2196. #else
  2197. static void *yy_flex_realloc( ptr, size )
  2198. void *ptr;
  2199. unsigned int size;
  2200. #endif
  2201.     {
  2202.     return (void *) realloc( ptr, size );
  2203.     }
  2204.  
  2205. #ifdef YY_USE_PROTOS
  2206. static void yy_flex_free( void *ptr )
  2207. #else
  2208. static void yy_flex_free( ptr )
  2209. void *ptr;
  2210. #endif
  2211.     {
  2212.     free( ptr );
  2213.     }
  2214. # line 194 "../../mindy-1.x/comp/lexer.l"
  2215.  
  2216.  
  2217. static void skip_multi_line_comment(void)
  2218. {
  2219.     int depth = 1;
  2220.     int c, prev = '\0';
  2221.     
  2222.     while (1) {
  2223.     c = input();
  2224.     switch (c) {
  2225.       case EOF:
  2226.         return;
  2227.       case '\n':
  2228.         line_count++;
  2229.         prev = c;
  2230.         break;
  2231.       case '/':
  2232.         if (prev == '*')
  2233.         if (--depth == 0)
  2234.             return;
  2235.         else
  2236.             prev = 0;
  2237.         else
  2238.         prev = c;
  2239.         break;
  2240.       case '*':
  2241.         if (prev == '/') {
  2242.         depth++;
  2243.         prev = 0;
  2244.         }
  2245.         else
  2246.         prev = c;
  2247.         break;
  2248.       default:
  2249.         prev = c;
  2250.         break;
  2251.     }
  2252.     }
  2253. }
  2254.  
  2255. static int make_header_key()
  2256. {
  2257.   yylval.token = make_token(yytext, yyleng-1);
  2258.   return HEADER_KEY;
  2259. }
  2260. static int make_header_val()
  2261. {
  2262.   char *p1, *p2;
  2263.   int skipped = 0;
  2264.  
  2265.   for (p1 = p2 = yytext; p1 < yytext + yyleng; ) {
  2266.     /* skip initial spaces */
  2267.     while (p1 < yytext + yyleng && (*p1 == ' ' || *p1 == '\t')) {
  2268.       p1 += 1;
  2269.       skipped += 1;
  2270.     }
  2271.     /* copy to end of line */
  2272.     while (p1 < yytext + yyleng && *p1 != '\n') {
  2273.       *p2++ = *p1++;
  2274.     }
  2275.     /* copy and count newline */
  2276.     *p2++ = *p1++;
  2277.     line_count += 1;
  2278.   }
  2279.   /* make the token, dropping the last newline */
  2280.   yylval.token = make_token(yytext, yyleng - skipped - 1);
  2281.   return HEADER_VAL;
  2282. }
  2283. static int make_header_end()
  2284. {
  2285.   line_count += 1;
  2286.   yylval.token = yylval.token = make_token(yytext, yyleng);
  2287.   return HEADER_END;
  2288. }
  2289.  
  2290. int yywrap() { return 1; }
  2291.